<!doctype html>
<html lang="en">
<head>
    <title>Code coverage report for src/components/Engine/Report/BarReportEngine.vue</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="..\..\..\..\prettify.css" />
    <link rel="stylesheet" href="..\..\..\..\base.css" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <style type='text/css'>
        .coverage-summary .sorter {
            background-image: url(..\..\..\..\sort-arrow-sprite.png);
        }
    </style>
</head>
<body>
<div class='wrapper'>
  <div class='pad1'>
    <h1>
      <a href="..\..\..\..\index.html">All files</a> / <a href="index.html">src/components/Engine/Report</a> BarReportEngine.vue
    </h1>
    <div class='clearfix'>
      <div class='fl pad1y space-right2'>
        <span class="strong">0% </span>
        <span class="quiet">Statements</span>
        <span class='fraction'>0/67</span>
      </div>
      <div class='fl pad1y space-right2'>
        <span class="strong">0% </span>
        <span class="quiet">Branches</span>
        <span class='fraction'>0/46</span>
      </div>
      <div class='fl pad1y space-right2'>
        <span class="strong">0% </span>
        <span class="quiet">Functions</span>
        <span class='fraction'>0/23</span>
      </div>
      <div class='fl pad1y space-right2'>
        <span class="strong">0% </span>
        <span class="quiet">Lines</span>
        <span class='fraction'>0/67</span>
      </div>
    </div>
  </div>
  <div class='status-line low'></div>
<pre><table class="coverage">
<tr><td class="line-count quiet">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-no">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span>
<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&lt;template&gt;
  &lt;div ref="content" :style="{width: source.data.width || '100%', height: source.data.height||'100px'}"&gt;&lt;/div&gt;
&lt;/template&gt;
&nbsp;
&lt;script&gt;
  export default {
    name: 'BarReportEngine', /* 这个name暂时不知道用啥用，根据官方文档说的是方便排错的 */
<span class="fstat-no" title="function not covered" >    data() {</span>
<span class="cstat-no" title="statement not covered" >      return {</span>
        octopus: this.$parent.octopus,
        reportContent: null,  // 报表控件本身；
        color: {
          DarkGrey: "#515151", // 深灰色；
          Vigilance: "#E74D35", // 警戒色；
        },
      }
    },
<span class="fstat-no" title="function not covered" >    created: function () {</span>
<span class="cstat-no" title="statement not covered" >      this.init();</span>
<span class="cstat-no" title="statement not covered" >      this.octopus.tips.debug("BarReportEngine执行了created事件。");</span>
    },
    // 只会执行一次
<span class="fstat-no" title="function not covered" >    mounted: function () {</span>
<span class="cstat-no" title="statement not covered" >      let o = this;</span>
      // 基于准备好的dom，初始化echarts实例
<span class="cstat-no" title="statement not covered" >      this.reportContent = this.octopus.vue.$echarts.init(this.$refs.content);</span>
      // 注册拖拽事件。
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >      $(window).resize(function () {</span></span>
<span class="cstat-no" title="statement not covered" >        o.reportContent.resize();</span>
      });
      // 启用加载。
<span class="cstat-no" title="statement not covered" >      this.load();</span>
&nbsp;
      // this.$nextTick(function () {
      //   this.octopus.tips.debug("BarReportEngine执行了$nextTick");
      // });
      // this.octopus.tips.debug("BarReportEngine执行了mounted事件。");
    },
<span class="fstat-no" title="function not covered" >    beforeUpdate: function () {</span>
      // this.octopus.tips.debug("BarReportEngine执行了beforeUpdate事件。");
    },
<span class="fstat-no" title="function not covered" >    updated: function () {</span>
<span class="cstat-no" title="statement not covered" >      this.octopus.tips.debug("[BarReportEngine执行了updated事件。");</span>
    },
    // 活动事件，写在这里的好处是不管是第一次创建还是后退回来，都会触发这个事件
    // 比较典型的就是列表组件，返回的时候往往是需要刷新的。
<span class="fstat-no" title="function not covered" >    activated: function () {</span>
      // 每次页面激活触发识别窗体大小。
<span class="cstat-no" title="statement not covered" >      this.reportContent.resize();</span>
<span class="cstat-no" title="statement not covered" >      this.octopus.tips.debug("BarReportEngine执行了activated事件。");</span>
    },
    // 组件停用时，也就是切换出去的时候，需要注意的是，AppMenuEngine组件切换出去，不允许缓存，需要释放到初始状态，以便于下次进来。
<span class="fstat-no" title="function not covered" >    deactivated: function () {</span>
<span class="cstat-no" title="statement not covered" >      this.destroyData();</span>
<span class="cstat-no" title="statement not covered" >      this.octopus.tips.debug("BarReportEngine执行了deactivated事件。");</span>
    },
    computed: {
      // 如果cellData数据发生了改变,则触发这个事件。
<span class="fstat-no" title="function not covered" >      changeCell: function () {</span>
<span class="cstat-no" title="statement not covered" >        return this.source.id;</span>
      },
<span class="fstat-no" title="function not covered" >      changePage: function () {</span>
&nbsp;
      }
    },
    methods: {
<span class="fstat-no" title="function not covered" >      init: function () {</span>
<span class="cstat-no" title="statement not covered" >        this.initData();</span>
      },
      // 初始化数据，主要是还原#param等预设参数，重新绑定。
<span class="fstat-no" title="function not covered" >      initData: function () {</span>
        // 赋值。
<span class="cstat-no" title="statement not covered" >        this.source.control = this;</span>
      },
      // 执行加载
<span class="fstat-no" title="function not covered" >      load: function () {</span>
<span class="cstat-no" title="statement not covered" >        let o = this;</span>
<span class="cstat-no" title="statement not covered" >        this.octopus.request.api.post("/Octopus/Engine/List", this.source.data,</span>
          // 处理回调事件，通过分析data.status.code的状态来实现。
<span class="fstat-no" title="function not covered" >          function (data) {</span>
<span class="cstat-no" title="statement not covered" >            if (data.status.code == 200) {</span>
              // 渲染图表数据
<span class="cstat-no" title="statement not covered" >              let optionData = {</span>
                // backgroundColor: 'pink',
                // title: {
                //   text: o.source.report.title.name || "",
                //   subtext: o.source.report.title.note || "",
                //   x:o.source.report.title.local || "left",
                //   // top: 20, // 下沉20
                // },
                tooltip: {
                  trigger: 'axis',
                  axisPointer: {
                    type: 'cross',
                    crossStyle: {
                      color: '#00ff00'
                    },
                    // label: {
                    //   formatter: function (params) {
                    //     if (params.seriesData.length === 0) {
                    //       // 就是这里，可以获取到我想要的那个数据
                    //       mouseCurValue = params.value;
                    //     }
                    //   }
                    // }
                  },
                  // 展示面板格式化
<span class="fstat-no" title="function not covered" >                  formatter: function (params) {</span>
<span class="cstat-no" title="statement not covered" >                    let res = params[0].axisValue + "&lt;br/&gt;";</span>
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >                    $(params).each(function (index, item) {</span></span>
<span class="cstat-no" title="statement not covered" >                      if (item.seriesId.indexOf("Vigilance") == -1) {</span>
                        // 此处可对数据进行格式化显示，前端如果有配置就可以。
<span class="cstat-no" title="statement not covered" >                        res += item.marker + item.seriesName + ":" + item.data + "&lt;br/&gt;";</span>
                      }
                    });
<span class="cstat-no" title="statement not covered" >                    return res;</span>
                  },
                },
                toolbox: {
                  right: "20",
                  feature: {
                    dataView: {show: true, readOnly: false},
                    // magicType: {show: true, type: ['line', 'bar']},
                    // magicType: {show: true, type: ['line']},
                    // restore: {show: true},
                    saveAsImage: {show: true}
                  }
                },
                legend: {
                  // right: 10, // 各项偏移设置
                  // top: 20,
                  bottom: 40,
                  // data: ['用电量', '预算电量', '功率', '预算功率']
                  // selected: {'用电量': false, '预算用电量': false} // 后续可控制初始化显示或隐藏的列
                },
                xAxis: [
                  // {
                  //   type: 'category',
                  //   data: ['1月\n2019年', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
                  //   axisPointer: {
                  //     type: 'shadow'
                  //   },
                  //   axisLine: {
                  //     lineStyle: {
                  //       color: "#d14a61"
                  //     }
                  //   },
                  // }
                ],
                yAxis: [
                  // // min max 需要自动识别，并设置间隔值，一般按照6分来切割
                  // {
                  //   type: 'value',
                  //   name: '千瓦时',
                  //   min: -100,
                  //   max: 250,
                  //   interval: 50,
                  //   axisLabel: {
                  //     formatter: '{value} kWh'
                  //   }
                  // },
                  // {
                  //   type: 'value',
                  //   name: '千瓦',
                  //   min: 0,
                  //   max: 35,
                  //   interval: 5,
                  //   axisLine: {
                  //     lineStyle: {
                  //       color: "#d14a61"
                  //     }
                  //   },
                  //   axisLabel: {
                  //     formatter: '{value} kW'
                  //   }
                  // },
                  // {
                  //   type: 'value',
                  //   name: 'kW',
                  //   min: 0,
                  //   max: 25,
                  //   interval: 5,
                  //   offset: 80,
                  //   axisLabel: {
                  //     formatter: '{value} °T'
                  //   }
                  // }
                ],
                // 偏移使缩放条不遮掉报表X轴数据。
                grid: {
                  // top: "110px",
                  left: "60px",
                  right: "60px",
                  bottom: "100px",
                },
                dataZoom: [{
                  type: 'slider',//图表下方的伸缩条
                  show: o.source.report.xAxis.zoom || false, //是否显示，默认false
                  realtime: true, //拖动时，是否实时更新系列的视图
                  start: 0, //伸缩条开始位置（1-100），可以随时更改
                  end: 100, //伸缩条结束位置（1-100），可以随时更改
                }],
                series: [
                  // {
                  //   name: '警戒线',
                  //   type: 'bar',
                  //   itemStyle: {
                  //     normal: {
                  //       color: "#FFEA00"
                  //     },
                  //   },
                  //   data: [2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3]
                  // },
                  // {
                  //   name: '功率',
                  //   type: 'line',
                  //   yAxisIndex: 1,
                  //   itemStyle: {
                  //     normal: {
                  //       color: "#94B8EA"
                  //     },
                  //   },
                  //   data: [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]
                  // },
                ]
              };
&nbsp;
              // 如果有设置头部属性，则渲染。
<span class="cstat-no" title="statement not covered" >              if (o.source.report.title) {</span>
<span class="cstat-no" title="statement not covered" >                optionData.title = {</span>
                  text: o.source.report.title.name || "",
                  subtext: o.source.report.title.note || "",
                  x: o.source.report.title.local || "left",
                  // top: 20, // 下沉20
                };
              }
&nbsp;
<span class="cstat-no" title="statement not covered" >              let xAxisData = [];</span>
              // 转义数据
<span class="cstat-no" title="statement not covered" >              let queryData = {};</span>
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >              $(data.content.queryData).each(function (index, item) {</span></span>
                // 根据X列的配置对象名称来判断数据中是否包含
<span class="cstat-no" title="statement not covered" >                let xColumn = item[o.source.report.xAxis.name];</span>
<span class="cstat-no" title="statement not covered" >                if (xColumn) {</span>
<span class="cstat-no" title="statement not covered" >                  xAxisData.push(xColumn);</span>
                }
&nbsp;
                // 循环列名数据
<span class="cstat-no" title="statement not covered" >                for (let p in item) {</span>
<span class="cstat-no" title="statement not covered" >                  if (!queryData[p]) {</span>
<span class="cstat-no" title="statement not covered" >                    queryData[p] = [];</span>
                  }
<span class="cstat-no" title="statement not covered" >                  queryData[p].push(item[p]);</span>
                }
              });
&nbsp;
              // 装载X轴数据
<span class="cstat-no" title="statement not covered" >              optionData.xAxis.push({</span>
                type: 'category',
                data: xAxisData,
                axisPointer: {
                  type: 'shadow'
                },
                axisLine: {
                  lineStyle: {
                    color: o.source.report.xAxis.color || o.color.DarkGrey, // 默认深灰色
                  }
                },
              });
&nbsp;
              // 装载报表Y轴数据，其中min、max需要自动根据最大值，最小值，然后根据split自动计算出min、max、interval。
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >              $(o.source.report.yAxis).each(function (index, item) {</span></span>
<span class="cstat-no" title="statement not covered" >                optionData.yAxis.push({</span>
                  type: 'value',
                  name: item.name,
                  min: item.min || 0,
                  max: item.max || 100,
                  interval: item.interval || 20,
                  axisLine: {
                    lineStyle: {
                      color: item.color || o.color.DarkGrey,
                    }
                  },
                  axisLabel: {
                    formatter: "{value} " + item.unit
                  }
                },);
&nbsp;
                // 装载警戒线数据，如果有Y轴警戒数据。
<span class="cstat-no" title="statement not covered" >                if (item.vigilance) {</span>
<span class="cstat-no" title="statement not covered" >                  for (let vData in item.vigilance) {</span>
                    // 创建警戒数据
<span class="cstat-no" title="statement not covered" >                    let vigilanceData = [];</span>
<span class="cstat-no" title="statement not covered" >                    for (let i = 0; i &lt; data.content.queryData.length; i++) {</span>
<span class="cstat-no" title="statement not covered" >                      vigilanceData.push(item.vigilance[vData]);</span>
                    }
                    // 追加警戒数据包
<span class="cstat-no" title="statement not covered" >                    optionData.series.push({</span>
                      name: vData + "Vigilance",
                      type: "line", // 不设置的时候默认bar
                      yAxisIndex: index, // 警戒线使用的Y轴坐标，完美使用Index数据，哈哈哈。
                      showSymbol: false,  // 禁止警戒线出现原点
                      symbolSize: 0,      // 设置悬浮时警戒线的圈直径为0，变相隐藏，和showSymbol必须同时使用，否则鼠标移上去还是会有问题。
                      lineStyle: {       // 设置线样式
                        normal: {
                          color: o.color.Vigilance,
                          width: 1,// 线宽度
                          type: 'dashed', // 虚线
                        },
                      },
                      data: vigilanceData,
                    });
                  }
                }
&nbsp;
&nbsp;
              });
<span class="cstat-no" title="statement not covered" >              let legendData = [];</span>
              // 装载报表列数据
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >              $(o.source.report.cellData).each(function (index, item) {</span></span>
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >                let FilterColumn = $.grep(data.content.cellData, function (value) {</span></span>
<span class="cstat-no" title="statement not covered" >                  return value.name == item.name;//筛选出当前数据列数据</span>
                });
                // 确保找到该列
<span class="cstat-no" title="statement not covered" >                if (FilterColumn.length == 1) {</span>
<span class="cstat-no" title="statement not covered" >                  let column = FilterColumn[0];</span>
                  // 拼装series数据
<span class="cstat-no" title="statement not covered" >                  let seriesData = {</span>
                    name: column.displayName,
                    type: item.type || "bar", // 不设置的时候默认bar
                    yAxisIndex: item.yAxisIndex || 0,
                    itemStyle: {
                      normal: {
                        color: item.color || o.color.DarkGrey,
                      },
                    },
                    // label: {
                    //   normal: {
                    //     formatter: ["aass"]
                    //   }
                    // },
                    // lineStyle: {},
                    // areaStyle: {},
                    data: queryData[column.name],
                  };
&nbsp;
                  // 定义列头数据
<span class="cstat-no" title="statement not covered" >                  legendData.push(column.displayName);</span>
                  // 定义列数据
<span class="cstat-no" title="statement not covered" >                  if (item.gradual) {</span>
<span class="cstat-no" title="statement not covered" >                    seriesData.areaStyle = {</span>
                      color: new o.octopus.vue.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
                        offset: 0,
                        color: item.color || "rgb(255, 255, 255,0)"
                      }, {
                        offset: 1,
                        color: "rgb(255, 255, 255,0)" // 最后一位表示透明度，百度考虑的很全面。
                      }])
                    };
                  }
                  // 如果有分组信息，则写入。
<span class="cstat-no" title="statement not covered" >                  if (item.group) {</span>
<span class="cstat-no" title="statement not covered" >                    seriesData.stack = item.group;</span>
                  }
<span class="cstat-no" title="statement not covered" >                  optionData.series.push(seriesData);</span>
                } else {
<span class="cstat-no" title="statement not covered" >                  o.octopus.tips.error("未找到列数据：" + item.name);</span>
                }
              });
&nbsp;
              // 定义列头
<span class="cstat-no" title="statement not covered" >              optionData.legend.data = legendData;</span>
              // 执行渲染
<span class="cstat-no" title="statement not covered" >              o.reportContent.setOption(optionData);</span>
              // 执行事件
<span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >              o.reportContent.on('click', function (params) {</span></span>
<span class="cstat-no" title="statement not covered" >                if (o.clicked) {</span>
<span class="cstat-no" title="statement not covered" >                  o.clicked({</span>
                    title: params.name,
                    name: params.seriesName,
                    value: params.value,
                    type: params.seriesType,
                  });
                }
              });
            } else {
<span class="cstat-no" title="statement not covered" >              o.octopus.tips.error(data);</span>
            }
          });
&nbsp;
        // 刷新以后重新定义宽度
<span class="cstat-no" title="statement not covered" >        this.reportContent.resize();</span>
      },
      // 组件停用时把data修正回原始数据，其他属性因为不会变，所以不用还原。
<span class="fstat-no" title="function not covered" >      destroyData: function () {</span>
&nbsp;
      },
      // 控件数据变更事件
<span class="fstat-no" title="function not covered" >      change: function (new_cell, old_cell) {</span>
&nbsp;
      },
    },
    watch: {},
    props: ["source", "changed", "clicked"]
  }
&nbsp;
&lt;/script&gt;
&nbsp;
/*  scoped的意思是这里的样式只对当前页面有效不会影响其他页面，还有可以设置lang="scss"就是支持css预编译，也就是支持sass或者less  */
&lt;!-- Add "scoped" attribute to limit CSS to this component only --&gt;
&lt;style scoped&gt;
  h1, h2 {
    font-weight: normal;
  }
&nbsp;
&lt;/style&gt;
&nbsp;</pre></td></tr>
</table></pre>
<div class='push'></div><!-- for sticky footer -->
</div><!-- /wrapper -->
<div class='footer quiet pad2 space-top1 center small'>
  Code coverage
  generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Jan 20 2020 17:54:15 GMT+0800 (GMT+08:00)
</div>
</div>
<script src="..\..\..\..\prettify.js"></script>
<script>
window.onload = function () {
        if (typeof prettyPrint === 'function') {
            prettyPrint();
        }
};
</script>
<script src="..\..\..\..\sorter.js"></script>
</body>
</html>
